1. Field of the Invention
The present invention relates to a method and system for queuing elements and, in particular, for queuing print jobs to be processed and printed.
2. Description of the Related Art
Network printing systems generally comprise an assemblage of different printers, client computers, servers, and other components connected over a network. A print job is assembled at a client computer and transmitted over the network to a server linked to a variety of printers. The printers may have different printing capabilities. Thus, for a given submitted print job, some printers in the network may not be able to process the print job. To route print jobs through a network printing system, International Business Machines Corporation (IBM) provides Printing Systems Manager (PSM) products that provide centralized and distributed management of a network printing system. The IBM PSM systems manage the flow of print jobs and insure that a print job is routed to a printer that can handle the job.
A print job is comprised of one or more electronically-stored files and the print attributes therefor. The print attributes inform the printer how to process the files. To assemble print jobs, prior art systems include software installed on the client computer that displays a graphical user interface (GUI). Using a mouse, keyboard, etc., the user selects from a menu of options displayed in the GUI the components and print attributes for a print job. The client computer, under control of the installed software, would then create an electronically-stored job ticket based on the information entered by the user.
Job tickets typically only define the print attributes for a single file. However, a document may be comprised of multiple files, each having one or more print attributes. A file submitted to the printer often includes printer instructions in a page description language (PDL) such as POSTSCRIPT.TM.. POSTSCRIPT is a trademark of Adobe Systems, Incorporated. The PostScript language is used by many printers and applications to provide the complex fonts, graphics, and image handling capabilities required by today's applications. The PostScript language must be interpreted by a transform process in the printer or elsewhere in the network to produce a printed image file that is ready to be printed. Print image files are in a bitmapped image format, also known as a raster image. A raster image processor (RIP) translates PDL files to a raster image or RIP version of the file. In the desktop publishing environment, it can take several hours to transform a large PDL print file to its RIP version.
The IBM AIX.RTM. PRINT SERVICES FACILITY/6000 (PSF/6000) software system transforms PostScript files into an Advanced Function Presentation data stream (AFP data stream) for printing on printers attached to a machine implementing the PSF/6000 software. AIX is a registered trademark of IBM and PRINT SERVICES FACILITY is a trademark of IBM. The PSF/6000 software uses the PS2AFP transform command to transform PostScript and other file formats into an AFP data stream file without submitting it immediately to the printer. The PS2AFP command runs as a daemon, which is a program that runs unattended in the background of the operating system. Daemon processes generally provide services that must be available at all times. A daemon runs continuously, looking for work to do, performing that work, and waiting for more work.
In prior art systems, including those that implement the ISO DPA 10175, POSIX 1387.4 and PSIS printing standards, such as the IBM Printer Resource Manager products, print jobs are received and queued at a single point before being routed to a virtual printer or printer that can handle the print job. Such a single point queue is sometimes referred to as a "spooler." Spoolers are servers that accept requests from many clients, validate job and document attributes with those of the intended print destination, provide queuing and scheduling, and then route jobs/documents to the appropriate printer. Scheduling jobs in the spooler is often based on FIFO, job size, or job identification. Queues are also used to queue jobs from one or more logical printers for distribution to physical pritners. Current queues often select print jobs of lower priority over print jobs of higher priority to print. Thus, there is a need in the art for an improved method and system for selecting print jobs.